#pragma once

#include <limits>
#include "pooling_policy.hpp"

namespace cpac
{

	class ned_pool
	{
	public:
		static void* alloc_bytes(int in_count, char const* in_file, int in_line, char const* in_func);
		static void  dealloc_bytes(void* in_pointer);

		// aligned allocation
		static void* alloc_bytes_aligned(int in_align, int in_count, char const* in_file, int in_line, char const* in_func);
		static void  dealloc_bytes_aligned(int in_align, void* in_pointer);
	};

	typedef pooling_policy< ned_pool >             ned_pooling_policy;
	typedef aligned_pooling_policy< ned_pool, 16 > aligned16_ned_pooling_policy;

};
